package entity.Encomienda;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import dto.Encomienda.DTO_Encomienda;
import dto.Encomienda.DTO_Envio;
import dto.Encomienda.DTO_EnvioTercerizado;
import entity.Proveedor.Entity_Proveedor;

@Entity
@Table(name="Envio")
@DiscriminatorValue("TE")
public class Entity_EnvioTercerizado extends Entity_Envio {
	
	@ManyToOne
	@JoinColumn(name="idProveedor")
	private Entity_Proveedor proveedor;
	private String numeroTracking;
	public Entity_EnvioTercerizado() {

	}
	public Entity_Proveedor getProveedor() {
		return proveedor;
	}
	public void setProveedor(Entity_Proveedor proveedor) {
		this.proveedor = proveedor;
	}
	public String getNumeroTracking() {
		return numeroTracking;
	}
	public void setNumeroTracking(String numeroTracking) {
		this.numeroTracking = numeroTracking;
	}
	
	@Override
	public DTO_Envio toDTO() {
		DTO_Envio e = new DTO_EnvioTercerizado();
		e.setId(this.getId());
		e.setEstado(this.getEstado());
		e.setPosicionActual(this.getPosicionActual());

		List<DTO_Encomienda> lista = new ArrayList<DTO_Encomienda>();
		for(Entity_Encomienda en:this.getEncomiendas())
			lista.add(en.toDTO());
		e.setEncomiendas(lista);
		
		((DTO_EnvioTercerizado) e).setIdProveedor(this.getProveedor().getId());
		((DTO_EnvioTercerizado) e).setNumeroTracking(this.getNumeroTracking());
		
		return e;
	}
	
	
	
}
